/************************************************************************/
/* fxeventdecoder.h                                                     */
/************************************************************************/

#ifndef     __FXEVENTDECODER_H__
#define     __FXEVENTDECODER_H__

#if         _MSC_VER    >    1000
#pragma     once
#endif      _MSC_VER


namespace FX
{
    class CFXEventDecoder
    {
        public:
        CFXEventDecoder(){}
        ~CFXEventDecoder(){}
     
        public:
        void        OpenEventScriptFile(std::string strEventScriptFileName,
                        EVENT_VECTOR_MAP& eventVectorMap);       

        private:
        void        DecodeEventScript(ifstream& inputFileStream,
                        EVENT_VECTOR_MAP& eventVectorMap);        

        void        AddEventVectorToMap(EVENT_VECTOR_MAP& eventVectorMap,
                        std::string strEventVectorName,
                        FXEVENT_VECTOR& eventVector);

        IFXEvent*   CreateEvent(char* szLineRead);
        IFXEvent*   CreateTextureChangeEvent(char* szLineRead);
        IFXEvent*   CreateColorEvent(char* szLineRead);
        IFXEvent*   CreateScaleEvent(char* szLineRead);
        
        void        DeleteEventVector(FXEVENT_VECTOR& eventVector);
    };
}


#endif      __FXEVENTDECODER_H__